/**
 *  测试
 */
const MyPromise = require('./myPromise')
const promise = new MyPromise((resolve, reject) => {
    // resolve('测试成功')                  // 测试成功 
    // reject(new Error('测试失败 error'))     // 测试失败
    // reject(new Error('测试状态不可以在改变 error'))     // 测试状态不可以在改变

    // setTimeout(() => { 
    //     // resolve('测试异步成功')    
    //     reject(new Error('测试异步失败'))    
    // }, 1000)
    reject(new Error('catch'))
})

// promise.then(res => {
//     // console.log('res', res)
//     setTimeout(() => {
//         console.log('then1', res)
//     }, 1000)
//     return '测试then的链式调用'
// }, reason => {
//     console.log('reason', reason.message)
    
// })
// .then(res => { 
//     console.log(res)
// })

// promise.then(res => { // 测试连续调用h then
//     setTimeout(() => {
//         console.log('then', res)
//     }, 2000)
// }, reason => {
//     console.log('reason', reason.message)
// })
const promise2 = promise.then(value => { 
    console.log('promise2', value)
}, reason => {
    console.log('reject', reason)  
})
promise.catch(reason => { // 测试catch
    console.log('catch', reason)  
}).finally(() => { 
    console.log('finally')  
})